// pages/reservation/reservation.js
const app = getApp()
import api from '../../utils/api.js'

Page({
  data: {
    banners: [],
    loading: false
  },

  onLoad(options) {
    this.initPage()
  },

  onShow() {
    // 每次显示页面时刷新数据
    this.loadBanners()
  },

  // 初始化页面
  initPage() {
    this.loadBanners()
  },

  // 加载轮播图数据
  async loadBanners() {
    try {
      this.setData({ loading: true })
      
      // 调用API获取轮播图数据
      const banners = await api.carousel.getList()
      
      // 转换数据格式
      const formattedBanners = banners.map(item => ({
        id: item.id,
        image: item.image_url,
        title: item.title,
        url: item.link_value,
        linkType: item.link_type
      }))
      
      this.setData({ 
        banners: formattedBanners,
        loading: false 
      })
      
      console.log('预约页轮播图数据加载完成:', formattedBanners)
    } catch (error) {
      console.error('加载轮播图失败:', error)
      this.setData({ loading: false })
      wx.showToast({
        title: '加载失败',
        icon: 'none'
      })
    }
  },

  // 轮播图点击事件
  onBannerTap(e) {
    const { index } = e.currentTarget.dataset
    const banner = this.data.banners[index]
    
    if (banner.url && banner.linkType === 'page') {
      // 页面跳转
      wx.navigateTo({
        url: banner.url,
        fail: (error) => {
          console.error('页面跳转失败:', error)
          wx.showToast({
            title: '页面不存在',
            icon: 'none'
          })
        }
      })
    } else if (banner.url && banner.linkType === 'url') {
      // 外部链接，复制到剪贴板
      wx.setClipboardData({
        data: banner.url,
        success: () => {
          wx.showToast({
            title: '链接已复制',
            icon: 'success'
          })
        }
      })
    }
    
    console.log('点击轮播图:', banner.title)
  },

  // 轮播图切换事件
  onBannerChange(e) {
    console.log('预约页轮播图切换到:', e.detail.current)
  },

  // 跳转到个人预约页面
  async navigateToPersonalReservation() {
    // 检查登录状态
    const isLoggedIn = await app.checkAuth()
    if (!isLoggedIn) {
      return
    }

    wx.navigateTo({
      url: '/pages/reservation/personal'
    })
  },

  // 跳转到团体预约页面
  async navigateToTeamReservation() {
    const isLoggedIn = await app.checkAuth()
    if (!isLoggedIn) return
    wx.navigateTo({ url: '/pages/reservation/team' })
  },

  // 跳转到活动申请页面
  async navigateToActivityApplication() {
    const isLoggedIn = await app.checkAuth()
    if (!isLoggedIn) return
    wx.navigateTo({ url: '/pages/activity/apply' })
  },

  // 下拉刷新
  onPullDownRefresh() {
    this.loadBanners().then(() => {
      wx.stopPullDownRefresh()
    })
  },

  // 分享
  onShareAppMessage() {
    return {
      title: '南京中医药大学校史馆预约',
      path: '/pages/reservation/reservation',
      imageUrl: '/images/share-reservation.png'
    }
  }
})